package week4.ww;

/**
 * 
 * Practicumopgave Programmeren 1
 * @author Rick Clement en Adriaan Dekker
 * @version $Revision: 1.3 $
 */
public class GekloktWachtwoord extends Wachtwoord {
    // ------------------ Instantievariabelen ----------------
	long verlooptijd = 2; //in seconden
	long starttijd;
	
    // ------------------ Constructor ------------------------
	
	/**
	 * Maakt een nieuw willekeurig wachtwoord aan en zet ook de timer aan.
	 */
	public GekloktWachtwoord() {
		super(new RandomControleur (new StrengeControleur()));
		starttijd = (System.currentTimeMillis() / 1000);
	}
   
    // ------------------ Aanvragen --------------------------

    /**
     * Geeft aan of het wachtwoord verlopen is.
     */
   
	public boolean isVerlopen() {
		return (((System.currentTimeMillis() / 1000) - starttijd) > verlooptijd);
    }

	/**
	 * Verandert dit <code>Wachtwoord. 
	 * @require nieuw.length() >= 6 && !nieuw.contains(" ")
	 * @ensure this.wachtwoord == nieuw
	 * @param oud het huidige wachtwoord
	 * @param nieuw het nieuwe wachtwoord 
	 * @return <code>true als <code>oud gelijk is aan het huidige wachtwoord, en <code>nieuw een acceptabel wachtwoord is
	 */
	public boolean setWoord(String oud, String nieuw) {
		if (super.setWoord(oud, nieuw)) {
			starttijd = (System.currentTimeMillis() / 1000);
			return true;
		}
		else return false;
	}
}
